# -*- coding: utf-8 -*-  
# @File : plot.py          
# @Time : 2024/6/19 10:22
# @Author : Alec
# @Func : 
# @Desc :

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# 读取CSV文件
data = pd.read_csv('../Data/路径3_2.csv')

# 提取x、y、z坐标数据
x = data['x']
y = data['y']
z = data['z']
print(f"len(x) = {len(x)}")
print(f"len(y) = {len(y)}")
print(f"len(z) = {len(z)}")

# 创建三维坐标系
fig = plt.figure()
ax = fig.add_subplot(111, projection = '3d')

# 拟合算法1：二次多项式
# polyfit函数的第三个参数表示多项式的阶数，这里使用的是二次多项式（2）。可以根据需要调整阶数。
# polyval函数用于计算多项式的值，它接受两个参数：多项式系数和自变量的值。
p_yx = np.polyfit(y,x,2)
x_out = np.polyval(p_yx, y)
p_yz = np.polyfit(y,z,2)
z_out = np.polyval(p_yz, y)
ax.plot(x_out, y, z_out,c = 'blue',label = 'fixed')



# 绘制三维路径图
ax.plot(x, y, z, c = 'black', label = 'original')
# plt.scatter(x, y)
# plt.plot(x, y2, color='g')

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# 显示图形
ax.legend()
plt.show()
